home *** CD-ROM | disk | FTP | other *** search
- ;> s.ParseTree
- ;
- ; 21 Nov 1993
- ; 04 Dec 1993 added debug info
- ; 05 Dec 1993 debugged debug info
-
- AREA ParseDirTree,CODE,READONLY
-
- GET ^.h.RegNames
- GET ^.h.SWIs
- GET ^.h.ByteNames
- GET ^.h.Reasons
- GET ^.h.Macros
- GET h.Head
- GET h.Macros
-
- EXPORT ReadNextEntry
-
- ;******************************************************************************
- ;
- ;ReadNextEntry
- ;-------------
- ; on entry:
- ; [sp] index of object in current dir
- ; [Path]directory to be searched
- ; r0 pointer to string to match, or 0 for '*'
- ; on exit:
- ; C set if object read OK
- ; data is in GBPBuffer
-
- Routine "ReadNextEntry","r0-r6"
- MOV r6,r0
- MOV r0,#OS_GBPB_ReadDirEntriesFullFileInfo ; I know that '#11' is shorter!
- ADR r1,Path
- ADR r2,GBPBuffer ; where to put the info
- MOV r3,#1
- LDR r4,[sp,#32] ; skip 8 regs we pushed on the stack
- MOV r5,#GBPBufferEnd-GBPBuffer
- SWI XOS_GBPB
- STR r4,[sp,#32] ; update 'r4' calue
- ; BCC nofake
- ; BVS nofake
- ; LDR r1,GBPB_SIN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; ORR r1,r1,#&8100
- ; STR r1,GBPB_SIN
- ; CMP r4,#0
- ;nofake
- [ debug
- BVS %56
- MOV r1,pc
- SWI XOS_WriteI+' '
- SWI XOS_WriteI+'"'
- ADR r0,GBPB_Name
- SWI XOS_Write0
- SWI XOS_WriteI+'"'
- TEQP pc,r1
- NOP
- 56
- ]
- RoutineEndFlags
-
- END
-